/**
 * 响应拦截
 * @param {Object} http
 */
import {useToken} from "@/stores/userStores";

export const responseInterceptors = (vm) => {
    uni.$uv.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
        const data = response.data
        const userToken = useToken();
        const authorization = response.header.authorization
        if (authorization!= null) {

            userToken.updateToken(authorization)
        }
        // 自定义参数
        const custom = response.config?.custom
        if (data.code !== 200) { // 服务端返回的状态码不等于200，则reject()
            // 如果没有显式定义custom的toast参数为false的话，默认对报错进行toast弹出提示
            if(data.code=='2011'){
                uni.navigateTo({url:'/pages/user/login'})
            }else{
                if (custom.toast !== false && data.message) {
                    uni.$uv.toast(data.message)
                }
            }
            return Promise.reject(data)
        }
        if(data.unread){
            userToken.setUnread((Number.parseInt(data.unread)));
        }else{
            userToken.setUnread(0);
        }
        return data || {}
    }, (response) => { /*  对响应错误做点什么 （statusCode !== 200）*/
        uni.$uv.toast('请求失败')
        return Promise.reject(response)
    })
}
